﻿using LJ.Abstractions.Config;
using LJ.AspNetCore.Abstractions.Pack;
using LJ.Host.Abstractions.Config;
using LJ.Host.Abstractions.DependencyInjection;
using LJ.Host.Abstractions.Reflection;
using Microsoft.AspNetCore.Builder;

namespace LJ.Host.Web.Pack;

public class AspNetCorePackContext : IAspNetCorePackContext
{

    public AspNetCorePackContext(IServiceCollection serviceCollection,IConfiguration configuration)
    {
        ServiceCollection = serviceCollection;
        ConfigManager = new ConfigManager(serviceCollection, configuration);
        ReflectionManager = new ReflectionManager();
        DependencyManager = new DependencyManager(serviceCollection, ReflectionManager);
    }


    public IServiceCollection ServiceCollection { get; }

    public IConfigManager ConfigManager { get; }

    public IReflectionManager ReflectionManager { get; }

    public IDependencyManager DependencyManager { get; }
}